package com.nineclock.sign.service;

import com.nineclock.common.entity.PageResult;
import com.nineclock.common.entity.Result;
import com.nineclock.sign.dto.SignAllUserDTO;
import com.nineclock.sign.dto.SignDTO;
import com.nineclock.sign.dto.SignPCListDTO;

import java.io.IOException;
import java.util.List;

public interface SignService {

    /**
     * 签到功能
     * @param signDTO
     */
    public void signInsert(SignDTO signDTO);

    /**
     * 获取当前用户当天签到次数
     * @return
     */
    public Integer getDayCount();

    /**
     * 导出签到列表
     *
     * @param startTime
     * @param endTime
     * @return
     */
    public void export(String startTime, String endTime) throws IOException;

    /**
     * PC端查询签到列表
     * @param startTime
     * @param endTime
     * @param page
     * @param pageSize
     * @return
     */
    public PageResult<SignPCListDTO> querySignList(String startTime, String endTime, Integer page, Integer pageSize);

    /**
     * APP端-查看所有员工指定日期签到列表
     * @param dateStr
     * @return
     */
    public List<SignAllUserDTO> listSignAllUser(String dateStr);

    /**
     * APP-查询当前用户指定月份签到记录
     * @param dateStr
     * @return
     */
    public List<SignDTO> findCurrentUserByMonth(String dateStr);
}
